iT邦幫忙

DAY 19
0

初學 Golang 30 天系列 第 19

初學 Golang 30 天(十九)測試

  • 分享至 

  • xImage
  •  

寫了這麼多小程式,甚至也自己打包了成 Package 了,那 Go 有提供自動化測試的方法嗎?測試程式是否正常?讓我們一起來看看 Go 的測試方法。

測試

我們這邊拿 An Introduction to Programming in Go 中的範例來舉例,首先我們先寫一個簡單的 Package 來看看:

package math

func Average(xs []float64) float64 {
total := float64(0)
for _, x := range xs {
total += x
}
return total / float64(len(xs))
}

這個很簡單,這裡簡單建立一個叫 math 的 Package,這是一個簡單算平均的 Package,將讀取進來的浮點數陣列一個一個用 for 讀取進來累加,然後在返回總和除總數的結果。

package math

import "testing"

func TestAverage(t *testing.T) {
var v float64
v = Average([]float64{1,2})
if v != 1.5 {
t.Error("Expected 1.5, got", v)
}
}

然後我們來寫另外一個檔案,這個是測試的寫法,建議檔名取 math_test.go,因為前面的 Package 取名叫做 math.go 。
一開始先宣告測試用的變數 t,然後引用 Average 函數將 1,2 拿進去計算,如果答案不對利用 t 返回錯誤,使用起來相當的直覺。


上一篇
初學 Golang 30 天(十八)Package
下一篇
初學 Golang 30 天(二十)檔案
系列文
初學 Golang 30 天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言